//
// Created by PC on 2023/6/15.
// 根据给出的整数 输出对应的排名rank
// 信息学奥赛一本通(第五版) P146
/*
 例如:
 输入:
5
8 2 6 9 4
输出:
4 1 3 5 2
 * */
//


#include <iostream>

using namespace std;

int main()
{
    int n;
    cin >> n;
    struct num
    {
        int item;
        int rank = 0;
        int index;

        void printStruck()
        {
            printf("%d,%d,%d\n", item, rank, index);
        }
    } arr[n];
    int j,t;
    for (int i = 0; i < n; ++i)
    {
        cin>>t;
        arr[i].rank = 1;
        arr[i].index = i;
        if (i == 0)
        {
            arr[i].item=t;
        } else
        {
            j=0;
            // 确定要插入的位置j
            while(t>arr[j].item && j<i)
            {
               ++j;
            }
            int cur=i;
            while(cur>j)
            {
                swap(arr[cur],arr[cur-1]);
//                arr[cur]=arr[cur-1];
                --cur;
                arr[cur].rank++;
                arr[cur-1].rank++;
            }
            arr[j].item=t;
        }
    }
    for (int i = 0; i < n; ++i)
    {
        for (int k = 0; k < n; ++k)
        {
            if (i==arr[k].index)
            {
                arr[k].rank=k+1;
                cout<<k+1<<' ';
            }
        }
    }
    cout<<endl;
    for (int i = 0; i < n; ++i)
    {
        arr[i].printStruck();
    }
    return 0;
}